import request from "@/utils/request";

const EXAMQUESTION_BASE_URL = "/api/v1/exam-question";

const ExamQuestionAPI = {
    /** 获取试题列表分页数据 */
    getPage(queryParams?: ExamQuestionPageQuery) {
        return request<any, PageResult<ExamQuestionPageVO[]>>({
            url: `${EXAMQUESTION_BASE_URL}/page`,
            method: "get",
            params: queryParams,
        });
    },
    /**
     * 获取试题列表表单数据
     *
     * @param id 试题列表ID
     * @returns 试题列表表单数据
     */
    getFormData(id: number) {
        return request<any, ExamQuestionForm>({
            url: `${EXAMQUESTION_BASE_URL}/${id}/form`,
            method: "get",
        });
    },

    /**
     *  添加试题列表
     *
     *  @param data 试题列表表单数据
     */
    add(data: ExamQuestionForm) {
		
		
		const requestData = {
				    ...data,
				    options: JSON.stringify(data.options), // 假设 options 是数组
		};
        return request({
            url: `${EXAMQUESTION_BASE_URL}`,
            method: "post",
            data: requestData,
        });
    },

    /**
     * 更新试题列表
     *
     * @param id 试题列表ID
     * @param data 试题列表表单数据
     */
     update(id: number, data: ExamQuestionForm) {
		 const requestData = {
		 		    ...data,
		 		    options: JSON.stringify(data.options), // 假设 options 是数组
		 };
        return request({
            url: `${EXAMQUESTION_BASE_URL}/${id}`,
            method: "put",
            data: requestData,
        });
    },

    /**
     * 批量删除试题列表，多个以英文逗号(,)分割
     *
     * @param ids 试题列表ID字符串，多个以英文逗号(,)分割
     */
     deleteByIds(ids: string) {
        return request({
            url: `${EXAMQUESTION_BASE_URL}/${ids}`,
            method: "delete",
        });
    }
}

export default ExamQuestionAPI;

/** 试题列表分页查询参数 */
export interface ExamQuestionPageQuery extends PageQuery {
    /** 试卷名称 */
    papername?: string;
    /** 试题名称 */
    questionname?: string;
}



export interface ExamQuestionOptions{
    /** 试卷名称 */
    label?: string;
    /** 试题名称 */
    context?: string;
}
/** 试题列表表单对象 */
export interface ExamQuestionForm {
    /** 主键 */
    id?:  number;
    /** 所属试卷id（外键） */
    paperid?:  number;
    /** 试卷名称 */
    papername?:  string;
    /** 试题名称 */
    questionname?:  string;
    /** 选项，json字符串 */
    options?:  ExamQuestionOptions[];
    /** 分值 */
    score?:  number;
    /** 正确答案 */
    answer?:  string;
    /** 答案解析 */
    analysis?: string;
    /** 试题类型，0：单选题 1：多选题 2：判断题 3：填空题（暂不考虑多项填空） */
    type?:  number;
    /** 试题排序，值越大排越前面 */
    sequence?:  number;
}

/** 试题列表分页对象 */
export interface ExamQuestionPageVO {
    /** 主键 */
    id?: number;
    /** 所属试卷id（外键） */
    paperid?: number;
    /** 试卷名称 */
    papername?: string;
    /** 试题名称 */
    questionname?: string;
    /** 选项，json字符串 */
    options?: string;
    /** 分值 */
    score?: number;
    /** 正确答案 */
    answer?: string;
    /** 答案解析 */
    analysis?: string;
    /** 试题类型，0：单选题 1：多选题 2：判断题 3：填空题（暂不考虑多项填空） */
    type?: number;
    /** 试题排序，值越大排越前面 */
    sequence?: number;
}
